﻿using System;
using System.Collections.Generic;
using System.Text;
using System.ServiceModel;
using com.clinica.business.BE.gesliq;
using com.clinica.business.BL.interfaces.gesliq;
using com.clinica.config;


namespace LiclGesLiq
{
    public class LiclBandejaLiquidacionController
    {
        BeginConfig config = new BeginConfig();
        public LiclBandejaLiquidacionController()
        { 
        
        }
        public List<ParametrosBE> Obtener_Tabla(ParametrosBE oRequest)
        {
            ChannelFactory<IParametrosBL> factory = null;
            using (factory = new ChannelFactory<IParametrosBL>(config.Context + "Parametro"))
            {
                IParametrosBL oParm = factory.CreateChannel();
                List<ParametrosBE> lst = oParm.ObtenerParametros(oRequest);
                factory.Close();
                return lst;
            }
        }
        public List<PacienteBE> Buscar_Paciente(PacienteBE oRequest)
        {
            ChannelFactory<IPacienteBL> factory = null;
            using (factory = new ChannelFactory<IPacienteBL>(config.Context + "Paciente"))
            {
                IPacienteBL oPacie = factory.CreateChannel();
                List<PacienteBE> lst = oPacie.BuscarPaciente(oRequest);
                factory.Close();
                return lst;
            }
        }

        public List<LiquidacionBE> Obtener_Liquidaciones(LiquidacionBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ILiquidacionBL> factory = null;
            using (factory = new ChannelFactory<ILiquidacionBL>(config.Context + "Liquidacion"))
            {
                ILiquidacionBL oPacie = factory.CreateChannel();
                List<LiquidacionBE> lst = oPacie.ObternerLiquidaciones(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }
        public List<LiquidacionBE> Obtener_Liquidaciones_X_Estado(LiquidacionBE oRequest, DateTime dtFecha_Inicio, DateTime dtFecha_Fin)
        {
            ChannelFactory<ILiquidacionBL> factory = null;
            using (factory = new ChannelFactory<ILiquidacionBL>(config.Context + "Liquidacion"))
            {
                ILiquidacionBL oPacie = factory.CreateChannel();
                List<LiquidacionBE> lst = oPacie.ObternerLiquidacionesXEstado(oRequest, dtFecha_Inicio, dtFecha_Fin);
                factory.Close();
                return lst;
            }
        }
        public void AnularLiquidaciones(LiquidacionBE oRequest)
        {
            ChannelFactory<ILiquidacionBL> factory = null;
            using (factory = new ChannelFactory<ILiquidacionBL>(config.Context + "Liquidacion"))
            {
                ILiquidacionBL oPacie = factory.CreateChannel();
                oPacie.AnularLiquidacion(oRequest);
                factory.Close();
            }
        }
    }
}
